home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vbpcopy / jmdrive.bas < prev    next >
BASIC Source File  |  1998-10-06  |  5KB  |  140 lines

  1. Attribute VB_Name = "JMDriveSubs"
  2. Option Explicit
  3.  
  4. Public Function JMTestCanWrite(argProgramName, argPath As String, argSize As Long, argError As String) As Integer
  5.     JMTestCanWrite = False
  6.     On Error Resume Next
  7.     If (JMTestDriveRemoveable(argPath) = False) Then
  8.         If (JMTestDriveIsReady(argPath) = False) Then
  9.             argError = "Drive is Not Ready."
  10.             Exit Function
  11.         End If
  12.         If (argSize >= (JMTestDriveAvailableSpace(argPath) - 1024)) Then
  13.             argError = "Not enough space on Drive."
  14.             Exit Function
  15.         End If
  16.         JMTestCanWrite = True
  17.         Exit Function
  18.     Else
  19.         Do
  20.             If (JMTestDriveIsReady(argPath) = False) Then
  21.                 Select Case MsgBox("Drive is Not Ready." & vbCrLf & vbCrLf & "Do you want to Continue?", vbDefaultButton2 + vbYesNo + vbQuestion, argProgramName)
  22.                 Case vbYes
  23.                 Case Else
  24.                     argError = ""
  25.                     Exit Function
  26.                 End Select
  27.             End If
  28.             If (argSize >= (JMTestDriveAvailableSpace(argPath) - 1024)) Then
  29.                 Select Case MsgBox("Not enough space on Drive - Change to a New Disc." & vbCrLf & vbCrLf & "Do you want to Continue?", vbDefaultButton2 + vbYesNo + vbQuestion, argProgramName)
  30.                 Case vbYes
  31.                 Case Else
  32.                     argError = ""
  33.                     Exit Function
  34.                 End Select
  35.             Else
  36.                 JMTestCanWrite = True
  37.                 Exit Function
  38.             End If
  39.         Loop
  40.     End If
  41. End Function
  42.  
  43. Public Function JMTestDriveAvailableSpace(argPath As String) As Long
  44.     Dim wrkFileObject As Object
  45.     Dim wrkDrives
  46.     Dim wrkDrive As Object
  47.     JMTestDriveAvailableSpace = 0
  48.     On Error Resume Next
  49.     Set wrkFileObject = CreateObject("Scripting.FileSystemObject")
  50.     Set wrkDrives = wrkFileObject.Drives
  51.     For Each wrkDrive In wrkDrives
  52.         If (StrComp(wrkDrive.DriveLetter, Left$(argPath, 1), 1) = 0) Then
  53.             If (wrkDrive.IsReady = False) Then Exit For
  54.             JMTestDriveAvailableSpace = wrkDrive.AvailableSpace
  55.             Exit For
  56.         End If
  57.     Next wrkDrive
  58.     Exit Function
  59. End Function
  60.  
  61. Public Function JMTestDriveIsReady(argPath As String) As Integer
  62.     Dim wrkFileObject As Object
  63.     Dim wrkDrives
  64.     Dim wrkDrive As Object
  65.     JMTestDriveIsReady = False
  66.     On Error Resume Next
  67.     Set wrkFileObject = CreateObject("Scripting.FileSystemObject")
  68.     Set wrkDrives = wrkFileObject.Drives
  69.     For Each wrkDrive In wrkDrives
  70.         If (StrComp(wrkDrive.DriveLetter, Left$(argPath, 1), 1) = 0) Then
  71.             If (wrkDrive.IsReady = True) Then JMTestDriveIsReady = True
  72.             Exit For
  73.         End If
  74.     Next wrkDrive
  75.     Exit Function
  76. End Function
  77.  
  78. Public Function JMTestDriveRemoveable(argPath As String) As Integer
  79.     Dim wrkFileObject As Object
  80.     Dim wrkDrives
  81.     Dim wrkDrive As Object
  82.     JMTestDriveRemoveable = False
  83.     On Error Resume Next
  84.     Set wrkFileObject = CreateObject("Scripting.FileSystemObject")
  85.     Set wrkDrives = wrkFileObject.Drives
  86.     For Each wrkDrive In wrkDrives
  87.         If (StrComp(wrkDrive.DriveLetter, Left$(argPath, 1), 1) = 0) Then
  88.             Select Case wrkDrive.DriveType
  89.             Case 1
  90.                 JMTestDriveRemoveable = True
  91.             End Select
  92.             Exit For
  93.         End If
  94.     Next wrkDrive
  95.     Exit Function
  96. End Function
  97.  
  98. Public Function JMTestDriveWrite(argPath As String, argError As String) As Integer
  99.     Dim wrkFileObject As Object
  100.     Dim wrkDrives
  101.     Dim wrkDrive As Object
  102.     Dim wrkString As String
  103.     Dim wrkDriveLetter As String
  104.     JMTestDriveWrite = False
  105.     On Error Resume Next
  106.     Set wrkFileObject = CreateObject("Scripting.FileSystemObject")
  107.     Set wrkDrives = wrkFileObject.Drives
  108.     wrkDriveLetter = Left$(argPath, 1)
  109.     For Each wrkDrive In wrkDrives
  110.         If (StrComp(wrkDrive.DriveLetter, wrkDriveLetter, 1) = 0) Then
  111.             wrkString = wrkDrive.DriveLetter & " - "
  112.             Select Case wrkDrive.DriveType
  113.             Case 1, 2, 3
  114.                 JMTestDriveWrite = True
  115.             Case 4
  116.                 argError = "Can't Write to CD-ROM [" & wrkDriveLetter & ":]."
  117.             Case 5
  118.                 argError = "Can't Write to RAM Disk [" & wrkDriveLetter & ":]."
  119.             Case Else
  120.                 argError = "Can't Write to Drive [" & wrkDriveLetter & ":]."
  121.             End Select
  122.             Exit For
  123.         End If
  124.     Next wrkDrive
  125.     Exit Function
  126. End Function
  127.  
  128. Public Function JMCreateFolder(argPath As String, argError As String) As Integer
  129.     Dim wrkFileObject As Object
  130.     JMCreateFolder = False
  131.     On Error GoTo JMCreateFolderError
  132.     Set wrkFileObject = CreateObject("Scripting.FileSystemObject")
  133.     wrkFileObject.CreateFolder (argPath)
  134.     JMCreateFolder = True
  135.     Exit Function
  136. JMCreateFolderError:
  137.     argError = Error()
  138.     Exit Function
  139. End Function
  140.